Release: v1.0 = core rewrite, CI/CD, docs, and test suite overhaul#166
Merged
petesramek merged 50 commits intorelease/1.0from Apr 4, 2026
Merged
Release: v1.0 = core rewrite, CI/CD, docs, and test suite overhaul#166petesramek merged 50 commits intorelease/1.0from
petesramek merged 50 commits intorelease/1.0from
Conversation
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <me@petesramek.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Complete rewrite and v1.0 release preparation This PR represents a full rewrite of the PolylineAlgorithm library, modernizing the API surface, improving extensibility, and preparing for a stable v1.0 release targeting .NET Standard 2.1+. --- ### Breaking Changes / New Public API - **New generic interfaces** `IPolylineEncoder<TCoordinate, TPolyline>` and `IPolylineDecoder<TPolyline, TCoordinate>` replace the old encoding abstraction, allowing callers to use any coordinate and polyline representation. - **Abstract base classes** `AbstractPolylineEncoder<TCoordinate, TPolyline>` and `AbstractPolylineDecoder<TPolyline, TCoordinate>` provide the shared encoding/decoding algorithm; consumers override only `GetLatitude`, `GetLongitude`, `CreatePolyline` (encoder) or `CreateCoordinate`, `GetReadOnlyMemory` (decoder). - **Extension methods** `PolylineEncoderExtensions` and `PolylineDecoderExtensions` add convenience overloads for `List<T>` and arrays. - **`PolylineEncoding`** static utility class exposes low-level normalization, validation, encoding and decoding primitives. - **`PolylineEncodingOptions`** and **`PolylineEncodingOptionsBuilder`** expose configurable precision, stack-alloc buffer limit and `ILoggerFactory` integration. - **`InvalidPolylineException`** added for descriptive error reporting on malformed input. - All `Encode`/`Decode` methods accept an optional `CancellationToken`. ### Other Changes - Integrated `Microsoft.Extensions.Logging` support for diagnostics / CI audit trails. - Added `PolylineAlgorithm.NetTopologySuite.Sample` demonstrating integration with NetTopologySuite. - Comprehensive XML doc comments on all public APIs. - Updated README, CONTRIBUTING, AGENTS and all guide docs under `api-reference/guide/` (getting-started, advanced-scenarios, configuration, FAQ). - DocFX API reference updated for v1.0 under `api-reference/1.0/`. - Updated unit tests and benchmarks. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…rhaul (#159) ## Overview Promotes `develop/1.0` to `preview/1.0` in preparation for the 1.0 preview release. This batch brings in a full rewrite of the library's core, docs, CI/CD pipeline, and test suite accumulated since the last preview snapshot. ## What's included ### 🏗️ CI/CD & Workflows - **New workflows**: `bump-version`, `promote-branch` with source-branch enforcement, auto merge-to-main on release - **Branch protection**: new `lock`/`unlock` composite actions; `preview/**` and `release/**` branches are now automatically locked after creation - **Fix**: removed invalid `administration` permission from `release.yml` that caused workflow parse failures (#158) - **Fix**: corrected pull-request-finding logic in promote workflow - **Docs publishing**: URL-aware version switcher via `docs-versioning` template; `versions.json` manifest; reworked `generate-docs` job (#157) ### 📚 Documentation - New `/docs` developer guides: local development, testing conventions, benchmarks, composite actions catalogue, CI workflow reference, branch strategy, versioning pipeline, API doc generation, extensibility guide (#155) - Updated API reference YAMLs for version 1.0 - Fixed grammar, TOC typo, and outdated API references in docs - Updated `CONTRIBUTING.md` with links to all new docs articles - Flushed `PublicAPI.Unshipped.txt` ### 🔧 Source (library) - Refactored internal structure: `CoordinateDelta`, `CoordinateVariance`, `Pow10`, `Defaults`, `ExceptionGuard`, logging helpers - Updated `PolylineEncoder`, `PolylineDecoder`, `PolylineEncoding`, `PolylineEncodingOptions`, `PolylineEncodingOptionsBuilder` - Public API cleanup; `.editorconfig` updated (primary constructors disabled) ### ✅ Tests - Reorganized test files into proper namespace folders (`Abstraction/`, `Extensions/`, `Internal/`) - Added new test classes for `CoordinateDelta`, `CoordinateVariance`, `Pow10`, `ExceptionGuard`, `LogDebugExtensions`, `LogWarningExtensions`, `InvalidPolylineException`, `PolylineEncodingOptionsBuilder`, and encoder/decoder extensions - Removed stale/duplicate test files ### 🛠️ Build & Config - Cleaned up `PolylineAlgorithm.slnx`, `Directory.Build.props`, benchmarks config - Updated `.gitignore` to exclude dynamically generated `api-reference/_docs/` - Misc cleanup (removed junk files, updated `AGENTS.md`) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Removed administration permission --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Removed administration permission --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
petesramek
pushed a commit
that referenced
this pull request
Apr 5, 2026
- **Release: v1.0 = core rewrite, CI/CD, docs, and test suite overhaul (#166)** - **fixes for 1.0 (#171)** - **FIX: workflows (#173)** - **version-snapshot guides alongside API reference, fix index.md links, add released versions table (#176)** - **minor updates to code and docs generation (#180)** - **Fix version switcher URL bug and improve docs navigation/landing page (#183)** - **backtracking (#189)** - **backtracking (#195)** - **backtracking 2 (#198)** - **Preview/1.0 (#202)** - **Promote preview/1.0 to release/1.0 (#208)** - **Promote preview/1.0 to release/1.0 (#211)** - **Promote preview/1.0 to release/1.0 (#215)**
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Promotes
preview/1.0torelease/1.0in preparation for the 1.0 release. This batch brings in a full rewrite of the library's core, docs, CI/CD pipeline, and test suite accumulated since the last preview snapshot.What's included
🏗️ CI/CD & Workflows
bump-version,promote-branchwith source-branch enforcement, auto merge-to-main on releaselock/unlockcomposite actions;preview/**andrelease/**branches are now automatically locked after creationadministrationpermission fromrelease.ymlthat caused workflow parse failures (fix: remove invalidadministrationpermission from release workflow #158)docs-versioningtemplate;versions.jsonmanifest; reworkedgenerate-docsjob (Add URL-aware version switcher to API docs via docs-versioning template #157)📚 Documentation
/docsdeveloper guides: local development, testing conventions, benchmarks, composite actions catalogue, CI workflow reference, branch strategy, versioning pipeline, API doc generation, extensibility guide (docs: add developer documentation under /docs #155)CONTRIBUTING.mdwith links to all new docs articlesPublicAPI.Unshipped.txt🔧 Source (library)
CoordinateDelta,CoordinateVariance,Pow10,Defaults,ExceptionGuard, logging helpersPolylineEncoder,PolylineDecoder,PolylineEncoding,PolylineEncodingOptions,PolylineEncodingOptionsBuilder.editorconfigupdated (primary constructors disabled)✅ Tests
Abstraction/,Extensions/,Internal/)CoordinateDelta,CoordinateVariance,Pow10,ExceptionGuard,LogDebugExtensions,LogWarningExtensions,InvalidPolylineException,PolylineEncodingOptionsBuilder, and encoder/decoder extensions🛠️ Build & Config
PolylineAlgorithm.slnx,Directory.Build.props, benchmarks config.gitignoreto exclude dynamically generatedapi-reference/_docs/AGENTS.md)